iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 26
0

前言:幾乎你所有在 iOS 當中可以見到的元件,他背後都是 UIView ,例如 Buttn、TextField、tableView 等等...
而每個 UIView 背後都是 CALayer

UIView 處理 layout 或 handle touch event,但它不處理圖形或動畫,UIKit 則是將任務 delegate 給CoreAnimation 去處理。基本上 UIView 是 CALayer 封裝過後的樣子,UIView 外觀的呈現,是經由 Core Animation 去實作。

再繼續之前,我先舉個簡單的例子讓大家看看 layer 能做些什麼
當你今天想再編輯會員頁面的 title 時,旁邊出現紅色邊框,你可以鍵入以下程式碼:

// 紅框出現
titleTextField.layer.borderWidth = 1
titleTextField.layer.borderColor = UIColor.red.cgColor
// 紅框消失
titleTextField.layer.borderWidth = 0
titleTextField.layer.borderColor = nil
// 陰影
titleTextField.layer.shadowOpacity = 0.5

這邊要注意一件事,如果你今天不是使用既定的 View ,而是像這樣創建一個 layer:

let layer = CALayer()

記住此時不要把 delegate 指到你的其他 UIView 上,例如前面 titleTextField 上面,因為 UIView 本身就有自己 layer 的 delegate 了。


上一篇
Swift Functional Programming (三)
下一篇
iOS Test (二)
系列文
iOS 開發:燃燒吧! 從初心者到超級初心者的轉職之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言